_st_create_shadow_pipeline_from_actor creates shadow pipelines
from actors. This function special-cases ClutterTexture as a
small performance improvement, since we can have access to the
CoglTexture easily with it. However, recent commits removed all
usage of ClutterTexture from GNOME Shell, rendering this optimization
useless. Instead, actors now may have a ClutterImage set as
their content, that can be used instead.
Replace the check for ClutterTexture with a check for ClutterImage,
and use the texture of the image when it is available.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/371
_st_create_shadow_pipeline_from_actor (StShadow *shadow_spec,
ClutterActor *actor)
{
+ ClutterContent *image = NULL;
CoglPipeline *shadow_pipeline = NULL;
float width, height;
if (width == 0 || height == 0)
return NULL;
- if (CLUTTER_IS_TEXTURE (actor))
+ image = clutter_actor_get_content (actor);
+ if (image && CLUTTER_IS_IMAGE (image))
{
CoglTexture *texture;
- texture = clutter_texture_get_cogl_texture (CLUTTER_TEXTURE (actor));
+ texture = clutter_image_get_texture (CLUTTER_IMAGE (image));
if (texture &&
cogl_texture_get_width (texture) == width &&
cogl_texture_get_height (texture) == height)